____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
ÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻ
Software
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
top
Software [] (englisch; wĂśrtlich âweiche Wareâ, soft = leicht veränderbare Komponenten als GegenstĂźck zu âHardwareâ fĂźr die physischen Komponenten)cite-ref-duden-inf-1-0[1] ist ein Sammelbegriff fĂźr Computerprogramme und die zugehĂśrigen Daten.cite-ref-lassmann-2-0[2] Sie kann zusätzlich Bestandteile wie z. B. die Softwaredokumentation als Handbuch in digitaler oder gedruckter Form enthalten.cite-ref-isbn-978-3-446-22543-5-3-0[3]
Software bestimmt, was ein softwaregesteuertes Gerät tut und wie es das tut.cite-ref-tessen-edmunds-4-0[4] Die Hardware (das Gerät selbst) fßhrt Software aus (arbeitet sie ab) und setzt sie so in die Tat um. Software ist die Gesamtheit von Informationen, die man der Hardware hinzufßgen muss, damit ein softwaregesteuertes Gerät fßr ein definiertes Aufgabenspektrum nutzbar wird.cite-ref-rothhardt-5-0[5]
Durch das softwaregesteuerte Arbeitsprinzip kann eine starre Hardware individuell arbeiten. Es wird heute nicht nur in klassischen Computern angewendet, sondern auch in vielen eingebetteten Systemen wie beispielsweise in Waschmaschinen, Fernsehgeräten, Mobiltelefonen und Navigationssystemen.
Contents
⢠Definition
⢠Etymologie
⢠Geschichte
⢠Entwicklung
⢠Auswahl
⢠Betrieb
⢠Qualität
⢠Kategorisierung
⢠Lizenzmodelle
⢠Siehe auch
⢠Literatur
⢠Weblinks
⢠Einzelnachweise
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Definition
Der Begriff Software ist bis heute nicht einheitlich und auch nicht eindeutig definiert. Das geht u. a. darauf zurĂźck, dass âinnerhalb der Softwaretechnik [âŚ] eine einheitliche solide, konsistente und systematische Begriffsbildung durch eine hohe Innovationsgeschwindigkeit und Praxisnähe behindertâ wird.cite-ref-7[6.1] Es existieren daher verschiedene Definitionen, die sich je nach Autor und Kontext oft auch nur in Details unterscheiden.
Die Bezeichnung Software wird im allgemeinen Sprachgebrauch meist nur auf Programme bezogen, nicht aber auf andere Daten.cite-ref-meyer-8-0[7] Daneben kÜnnen aber auch der Quelltext, weitere Datencite-ref-lassmann-2-1[2] oder die Dokumentationcite-ref-isbn-978-3-446-22543-5-3-1[3] je nach Definition hinzugezählt werden.
AuĂerdem wird Software auch als Gattungsbegriff fĂźr unterschiedliche Arten von Programmen verwendet (Grafiksoftware, Anwendungssoftware, Standardsoftware, Sicherheitssoftware u. v. a.).
Etymologie
Der Ausdruck Software ist ein Kunstwort, das von John W. Tukey im Jahr 1958 im American Mathematical Monthlycite-ref-amm58-9-0[8] als GegenstĂźck zu dem wesentlich älteren Wort Hardware das erste Mal verwendet wurde.cite-ref-ludewig07-10-0[9] Dabei bezeichnet Hardware alle physischen Bestandteile eines Computers. In diesem Sinn kĂśnnten unter Software â als dem GegenstĂźck zur Hardware â grundsätzlich alle elektronisch gespeicherten Daten verstanden werden.cite-ref-linfo-org-sw-2-11-0[10] Als Definition genĂźgt diese Sichtweise jedoch nicht.cite-ref-ludewig07-10-1[9]
Definitionen nach ISO/IEC-Norm 24765
Die aktuelle ISO/IEC-Norm 24765 ersetzte die DIN-Norm 44300 und enthält fßr Software folgende Definitionen:cite-ref-iso-iec-24765-2010-12-0[11]
⢠Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben.
⢠Software sind Programme sowie die zugehÜrige Dokumentation.
⢠Software sind Programme und ggf. die zugehÜrige Dokumentation und weitere Daten, die zum Betrieb eines Computers notwendig sind.
Welche dieser Definitionen zutrifft, hängt vom jeweiligen Kontext ab, wobei auch hier die Ăbergänge flieĂend sind.
Software als Programm In der Softwaretechnik besteht Software aus âComputerprogrammen in jeder Erscheinungsform, vom Quelltext bis zum direkt ausfĂźhrbaren Maschinencodeâ.cite-ref-rothhardt-5-1[5] Computerprogramme bestehen oft aus mehreren Komponenten, die sich auch Ăźber mehrere Dateien verteilen kĂśnnen.
Software als Programm und Dokumentation Im Softwarerecht (oft im Zusammenhang mit dem Softwareerwerb) wird Software auch als Softwareprodukt bezeichnet, das âals Beiwerk zusätzlich Bestandteile wie z. B. die Dokumentation in digitaler oder gedruckter Form enthalten kann oder mussâ.cite-ref-isbn-978-3-446-22543-5-3-2[3] So auch im Urheberrecht, bei dem das Entwurfsmaterial zur Software gehĂśrt,cite-ref-13[12] wie der Quelltext, auch Quellprogramm genannt.cite-ref-14[13] D. h. der Urheberrechtsschutz gilt i. d. R. auch fĂźr den Quellcode [als Schutzgegenstand].cite-ref-sw-patents-15-0[14]
Software als Programm, Dokumentation und Daten Einige Definitionen nennen neben dem Programm selbst (und evtl. der Dokumentation) auch weitere Daten als zur Software gehĂśrend (âzugehĂśrige Datenâcite-ref-lassmann-2-2[2]). Im Glossar des IEEE fĂźr Softwareentwickler werden Beispiele fĂźr derartige nicht-ausfĂźhrbare Softwareteile genannt, wie Schriftarten, Grafiken, Audio- und Videoaufzeichnungen, Vorlagen, WĂśrterbĂźcher, Dokumente und Informationsstrukturen (wie Datenbank-Datensätze).cite-ref-16[15]
Weiterhin gibt es Software-Definitionen, die sämtliche Daten umschlieĂen, die das Computerprogramm nutzt und darĂźber hinaus auch die Dokumentation einbeziehen.cite-ref-tessen-edmunds-4-1[4] DemgegenĂźber gibt es auch Definitionen, die sowohl die Dokumentation als auch die zur Verarbeitung vorgesehenen Daten ausschlieĂen.cite-ref-17[16]
Eine klare Trennlinie, die beschreibt, welche Daten konkret gemeint sind, ist jedoch nicht näher definiert (z. B. die zu verarbeitenden Datencite-ref-tessen-edmunds-4-2[4] oder welche Daten ânotwendigâcite-ref-18[17]cite-ref-ludewig07-10-2[9] oder âzugehĂśrigâcite-ref-lassmann-2-3[2] sind).
Geschichte
In den 1950er Jahren waren Software und Hardware noch verbunden und als Einheit wahrgenommen. Die Software war dabei Teil der Hardware und wurde als Programmcode bezeichnet. 1958 prägte der Statistiker John W. Tukey den Begriff Software erstmals.cite-ref-amm58-9-1[8]
Später sorgte dann die Entscheidung der US-Regierung in den 1970er Jahren fßr eine Neuheit, dass IBM auf Rechnungen Software und Hardware getrennt zu berechnen und aufzufßhren habe. Das entsprach einer Anerkennung der Einzelhaftigkeit von Software von offizieller Seite und einer endgßltigen Aufspaltung von Hardware und Software bzw. einer Abgrenzung der Software von der Hardware.
Dieser Entwicklung folgte dann in den 1970er Jahren die Grßndung von Firmen, die erstmals nur mit Software handelten und nur Software und keine Hardware entwickelten. Zu diesen Firmen gehÜrte in den USA Microsoft und in Deutschland SAP. Die Existenz solcher Firmen erscheint im 21. Jahrhundert als Selbstverständlichkeit, stellte damals jedoch eine erhebliche Neuerung dar.
Der logische Ăbergang zwischen Hard- und Software lässt sich an den frĂźhen Spielhallenspielen verdeutlichen, wie das Spiel Breakout, das im April 1976 verĂśffentlicht wurde. Damals bestand deren komplettes Programm (der Ablauf, die Logik) bildlich gesehen aus âvorverdrahteten Schalttafelnâ.cite-ref-steve-wozniak-19-0[18] Das von Atari produzierte Spielhallengerät verwendete keinen Prozessor. Bereits ein Jahr später, als das Spiel fĂźr den Computer programmiert wurde und man anfing, bei prozessorgesteuerten Geräten zwischen den Begriffen âHardwareâ und âSoftwareâ zu unterscheiden, gab es Breakout als Software.cite-ref-steve-wozniak-19-1[18] Das Spiel bestand nicht mehr aus âvorverdrahteten Schalttafelnâ, sondern aus Anweisungen fĂźr einen Prozessor inklusive der fĂźr die Abarbeitung notwendigen weiteren Informationen, die gemeinsam auf einem Datenträger hinterlegt wurden.
Besondere Merkmale
Software ist immateriell
Software ist immateriell und besteht aus den Sprachen und Notationen, in denen sie formuliert ist.cite-ref-20[9.1] Software kann zwar auf bestimmten Medien gespeichert, gedruckt, angezeigt oder transportiert werden. Diese sind aber nicht die Software, sondern sie enthalten sie nur.
Es ist zwar vorstellbar, Bits sichtbar und greifbar auf einem Trägermedium zu hinterlegen, doch grundsätzlich ist âSoftwareâ ein abstrakter, von Trägermedien unabhängiger Begriff. Das trifft fĂźr den Gattungsbegriff ohnehin zu, aber auch fĂźr konkrete Ausprägungen wie ein bestimmtes Anwendungsprogramm.cite-ref-21[19] Als Analogie dazu ist es fĂźr den Begriff âOperâ oder âZauberflĂśteâ nicht begriffsbestimmend, ob sie im Theater aufgefĂźhrt, Ăźber Radio/TV Ăźbertragen oder als CD verkauft oder gehĂśrt wird, ob sie im OpernfĂźhrer beschrieben oder in der Partitur aufgezeichnet ist.
In Details unterschiedliche Bedeutungen
⢠Im Zusammenhang mit der Ausfßhrung auf einem Computer wird unter Software primär alles verstanden, was auf dem Rechner ausgefßhrt werden kann (das Programm im engeren Sinn, bestehend aus Befehlen und Datendefinitionen). Dazu kommen die mit den Programmen verbundenen Ressourcen, die zum Betrieb der Software erforderlich sind. Das sind, abhängig von den verwendeten Entwicklungswerkzeugen, zum Beispiel Konfigurationsdateien, Schriftart-Dateien, Lookup-Tabellen, Datenstrukturen fßr Datenbanken etc.
⢠In engstem Sinn wäre unter âSoftwareâ nur von der Hardware ausfĂźhrbarer Maschinencode zu verstehen. Jedoch fällt darunter auch alles, was durch beliebige âinterpretierende Systemeâ, die Teil der Systemsoftware sind, ausgefĂźhrt werden kann, wie das bei Verwendung hĂśherer Programmiersprachen und Entwicklungsumgebungen nahezu immer der Fall ist.cite-ref-ludewig07-10-3[9]
⢠So ist auch der Quellcode in der Softwareentwicklung (als wesentlicher Arbeitsgegenstand) und in der Qualitätssicherung (als bedeutender Prßfgegenstand; Details siehe Softwarequalität) ein wesentliches Software-Artefakt.
⢠Sprachlich wird der Ausdruck âSoftwareâ unterschiedlich verwendet: Er steht fĂźr konkret benannte Komponenten (Programm XY, Unterprogramm ABC, Konfigurationsdatei XXX.INI). Er wird als Sammelbegriff fĂźr unterschiedliche Gesamtheiten/Mengen von Programmen benutzt,cite-ref-lassmann-2-4[2] zum Beispiel fĂźr eine aus vielen Einzelprogrammen bestehende Buchhaltungssoftware (siehe Softwaresystem), fĂźr alle Anwendungen eines Unternehmens (âunsere Unternehmenssoftwareâ), oder als Typ-/Gattungsbegriff fĂźr unterschiedliche Arten von Software (wie Grafiksoftware, Standardsoftware, Systemsoftware etc.).
FlieĂende Grenze zwischen Software und Daten
Zur Verarbeitung bestimmte Daten zählen im allgemeinen Sprachgebrauch nicht zum Begriff Software.cite-ref-meyer-8-1[7] Jedoch ist die Grenze zwischen Software und Daten flieĂend, denn je nach Situation kĂśnnen Daten und Programme in unterschiedlichen Rollen auftreten und die Begriffe dabei vertauscht werden:
⢠Auf der Dateiebene kÜnnen Mischformen auftreten, beispielsweise in Office-Dokumenten oder bei einer Tabellenkalkulationsdatei. Hier enthält eine Datei sowohl Daten im Sinne von das Bearbeitete (Texte oder Zelleninhalte) als auch funktionale Anweisungen (Makroanweisungen, Zellformeln).
⢠Vertauscht sind die Rollen beispielsweise, wenn ein Quellprogramm von einem Compiler in ein Maschinenprogramm umgewandelt wird: Sowohl das Quellprogramm als auch das erzeugte Binärprogramm sind âDatenâ, der Compiler ist die Software. Ebenso verwendet ein Interpreter ein Quellprogramm oder ein Emulator ein Binärprogramm als Daten und erzeugt daraus speicherintern den ausfĂźhrbaren Code. Die so verarbeiteten Programmdateien sind Software, rollenspezifisch aber gleichzeitig Daten.
Dieser Zusammenhang, dass ein Programm sowohl als Daten als auch als Funktion auftreten kann, ist zentral in verschiedenen Disziplinen der Informatik, darunter die theoretische Informatik (u. a. Rekursionstheorie, Automatentheorie, Domaintheorie) und die technische Informatik (z. B. Von-Neumann-Architektur).
Unterscheidung zwischen Hard- und Software
Je nach Zusammenhang ist bei der Unterscheidung zwischen Hard- und Software eine oder mehrere der folgenden Bedeutungen gemeint:
⢠Leicht veränderbare Komponente (Software) vs. schwer veränderbare Komponente (Hardware) in einem Computerdesign.cite-ref-duden-inf-1-1[1]
⢠Instruktionskode (Software) vs. universelle Maschine (Hardware).
⢠Nicht-greifbar im Sinne von Funktionsbestandteilen eines Computersystems, die sich ânicht anfassen lassenâcite-ref-softwaretechnik-basiskonzepte-2009-22-0[20] (Software) vs. greifbare Komponenten (Hardware). Software lieĂe sich Ăźber eine Telefonleitung Ăźbertragen, Hardware dagegen nicht.
Die Gegensätze sind in der englischsprachigen Begriffsprägung (soft=weich, hard=hart) beabsichtigt.
Verschiedene Blickwinkel
Software kann aus vielen unterschiedlichen Gesichtspunkten betrachtet werden, zum Beispiel:
Zusammenwirken mit der Hardware (Execution)
âZwischen Hard- und Software besteht eine gewisse Aufgabenverteilung: Die Hardware garantiert [âŚ] Quantität, also Tempo und Speicherkapazität, die Software sorgt fĂźr [âŚ] die Abbildung der Anforderungen [âŚ] auf die strukturell primitive Hardwareâ
â
Software Engineering
Obwohl dem Begriff âSoftwareâ teilweise Attribute wie Flexibilität, Individualität, Leistungsfähigkeit etc. zugeschrieben werden, wird letztlich alles, was der Computer âtatsächlich tutâ, nicht von der Software, sondern ausschlieĂlich durch die Hardware ausgefĂźhrt. Software âbeschreibtâ lediglich, was getan werden soll und in welcher Form das geschieht.
Dazu wird auf unterster Ebene der Maschinencode der Software unter Nutzung des Betriebssystems (d. h. ebenfalls durch dessen Maschinenbefehle) in den Hauptspeicher des Computers geladen und dem Rechenwerk Schritt fßr Schritt (siehe Befehlszähler) zur Ausfßhrung zugefßhrt. Dieses Arbeitsprinzip gilt fßr jede Art von Software, auch wenn sie z. B. von Interpretern ausgefßhrt wird: Diese sind ebenfalls Software, deren Maschinencode an der Hardwareschnittstelle ebenfalls wie beschrieben ausgefßhrt wird und die Maschinenbefehle nur speicherintern erzeugt. Auch Compiler, Makroprozessoren und jede andere Art von Systemsoftware werden nach diesem Prinzip ausgefßhrt.
Der Maschinencode muss dafßr in einer Form/Struktur vorliegen, die von der Hardware ßber deren darin implementierte Schnittstelle interpretiert und ausgefßhrt werden kann.cite-ref-24[21] Die Befehle zeigen durch ihren Inhalt und ihre Struktur an, was zu tun ist, welche Datenbereiche im Hauptspeicher dabei benutzt oder verändert werden sollen (ßber im Befehl enthaltene Adressierungsangaben) und gegebenenfalls an welcher Stelle das Programm fortzusetzen ist.
Bei der Ausfßhrung wirken also viele Schichten zusammen und fßhren als Gesamtheit zu Zustandsänderungen in der Hardware bzw. final zu den vorgesehenen Ergebnissen, etwa der Ausgabe einer Druckzeile, einem Datenzugriff oder der Anzeige eines Feldinhalts am Bildschirm. Bei in hÜheren Programmiersprachen entwickelten Anwendungen kÜnnen so schon fßr relativ einfache Funktionen (wie Lesen aus der Datenbank) oft Hunderttausende oder Millionen von Maschinenbefehlen durchlaufen werden.
Das in modernen Computern mĂśgliche parallele AusfĂźhren mehrerer Programme/Prozesse wird im Wesentlichen durch das Betriebssystem bewirkt, das bei bestimmten Ereignissen den Wechsel von einer zur anderen Task einleitet und verwaltet. Siehe auch Multitasking.
Im systematischen Zusammenwirken vieler Komponenten, das nur unter Anwendung klar definierter Schnittstellen mĂśglich ist, âgehĂśrt Software also zu den komplexesten Artefakten, die Menschen bislang geschaffen habenâ.cite-ref-20-1[9.1] Die Software trägt zudem maĂgeblich dazu bei, wie effizient die Hardware genutzt wird. Je nach Gestaltung der Algorithmen kĂśnnen mit derselben Hardware unterschiedliche Systemleistungen erreicht werden.
Entwicklung
â
Hauptartikel
:
Softwaretechnik
Die Entwicklung von Software ist ein komplexer Vorgang. Dieser wird durch die Softwaretechnik, ein Teilgebiet der Informatik, systematisiert. Hier wird die Erstellung der Software schrittweise in einem Prozess von der Analyse Ăźber die Softwaremodellierung bis hin zum Testen als wiederholbarer Prozess beschrieben.
In aller Regel wird die Software nach der Entwicklung mehrfach angepasst und erweitert. Der Software-Lebenszyklus kann durchaus mehrere Jahre betragen.
⢠Software wird unter Nutzung bestimmter Verfahren, Methoden und âWerkzeugeâ entwickelt. Dabei werden unterschiedliche Entwicklungsstadien durchlaufen, in denen jeweils unterschiedliche Zwischenstände der Software entstehen: Analysetätigkeiten (zahlreiche Entwicklungsdokumente) > Programmierung (Quellcode) > im Betrieb (Maschinencode oder ausfĂźhrbarer Code). Im engeren Sinn der AusfĂźhrung auf dem Computer gilt lediglich Letzteres als âSoftwareâ. Siehe auch Softwareentwicklung.
⢠In diesem Zusammenhang ist Software Bearbeitungsgegenstand von Systemprogrammen: Wenn z. B. ein Compiler den Quellcode eines Programms liest, verarbeitet und einen Maschinen- oder Zwischencode erzeugt, so sind das aus dessen Sicht âDatenâ.
⢠Einmal erzeugte Software kann mit verhältnismäĂig geringen Kosten vervielfältigt werden, die meist durch Datenträger, Werbung und das Herstellen von Verpackung und zu Papier gebrachten Dokumentationen anfallen.
⢠Software verschleiĂt nicht durch Nutzung, unterliegt jedoch mit der Zeit der Softwarealterung.
⢠Software ist meist austauschbar, fähig zur Aktualisierung, korrigierbar und erweiterbar, insbesondere dann, wenn bestehende Richtlinien eingehalten werden und der Quelltext verfßgbar ist.
⢠Software tendiert dazu, umso mehr Fehler zu enthalten, je komplexer sie ist.cite-ref-fehlerinkomplexersoftware-m-ulich-wired-25-0[22] Fehler werden in aktualisierten Softwareversionen oder mithilfe eines Patches und i. d. R. nach DurchfĂźhrung von Softwaretests behoben. Softwarefehler bezeichnet man auch als Programmfehler oder als âBugsâ.
⢠Weil Software unter Einsatz vieler unterschiedlicher Programmiersprachen und in vielen unterschiedlichen Betriebssystemen und Systemumgebungen entwickelt werden kann, sind Softwarestandards erforderlich, um Informationen system- und unternehmensĂźbergreifend âverstehbarâ und austauschbar zu machen. Siehe auch Elektronischer Datenaustausch (Beispiele), Programmierstil.
Auswahl
â
Hauptartikel
:
Softwarebeschaffung
In der Entscheidung zur Anschaffung von Software lässt sich i. W. der Einsatz von Standardsoftware oder die eigene Herstellung (Individualsoftware) unterscheiden. Besonders im betrieblichen Umfeld zieht diese Entscheidung häufig hohe Kosten nach sich. Auch kĂśnnen solche Entscheidungen Grundlage zur Umsetzung der Unternehmensstrategie sein oder sollen Unternehmensprozesse maĂgeblich verbessern. Zur Vermeidung von Fehlinvestitionen sollte der Anschaffung ein systematischer Entscheidungsprozess vorausgehen.
Betrieb
â
Hauptartikel
:
IT-Service-Management
⢠Der Einsatz von Software erfordert je nach Einsatzbereich ein gewisses MaĂ an Organisation, um die zusammengehĂśrenden Teile richtig einzusetzen und durch neue Versionen abzulĂśsen (zum Beispiel in grĂśĂeren Unternehmen im Releasemanagement).
⢠Mitunter kann Software vorkonfiguriert werden, um so eine Neuinstallation zu beschleunigen und um Fehler bei der Konfiguration zu minimieren.
Software aus Sicht der Betriebswirtschaft und Arbeitssoziologie
Im Wesentlichen fĂźr betriebliche Anwendungssoftware geltend kann Software aus (betriebs-)wirtschaftlicher Sicht als âim Voraus geleistete geistige Arbeitâ, also als Investition betrachtet werden. Zum Beispiel erarbeiten die Programmautoren ein LĂśsungsverfahren fĂźr die korrekte Trennung aller deutschen WĂśrter in einem Textverarbeitungsprogramm. Damit ist im Voraus, also bevor diese Tätigkeit tatsächlich anfällt, schon fĂźr alle Schreiber, die mit diesem Textverarbeitungsprogramm arbeiten, die geistige Arbeit âkorrektes Trennen deutscher WĂśrterâ geleistet. Dabei wird die Eigenschaft von Computern genutzt, auf sie verlagerte Aufgaben erheblich schneller und zuverlässiger ausfĂźhren zu kĂśnnen als es bisher Menschen mĂśglich war. Besonders auch in der Softwareentwicklung wird intensiv auf âim Vorausâ entwickelte Algorithmen und Codeteile â als Teile eines Programms â zurĂźckgegriffen (âSoftware-Wiederverwendungâ).
Ein ähnlicher Zusammenhang wird in der Arbeitssoziologie gesehen: Derartige softwarebasierte MaĂnahmen sind geeignet, Arbeitsinhalte und -abläufe erheblich zu verändern. Die Bandbreite reicht dabei vom Bereitstellen einfacher Hilfsmittel (etwa zur Summierung oder Durchschnittsermittlung) bis hin zur vĂślligen Umgestaltung von Prozessen (durch Konzentration frĂźher getrennter oder durch Zerlegung frĂźher zentralisierter Arbeitsabläufe) â oder gar bis zu deren vollständigem Ersatz durch IT-LĂśsungen. BrĂśdner u. a. nennen das âmaterialisierteâ Kopfarbeit.cite-ref-26[23] Siehe auch Rationalisierung, Optimierung, Taylorismus.
Qualität
â
Hauptartikel
:
Softwarequalität
FĂźr die Erstellung und den Betrieb von Software wurden bestimmte Qualitätskriterien festgelegt. Diese sollen als funktionale oder nicht-funktionale Eigenschaften von Software implementiert werden und beziehen sich auf die Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Ănderbarkeit und Ăbertragbarkeit.
Detailliertere Angaben zu jedem dieser Haupt-Qualitätskriterien nennt beispielsweise die Norm ISO/IEC 9126. Fßr jeden Einzelfall von Softwareerstellung soll/kann festgelegt werden, welche konkreten Anforderungen im Detail zu berßcksichtigen sind.
Kategorisierung
⢠Systemsoftware: Anwendungsunabhängige Software, die das Ausfßhren von Anwendungssoftware ermÜglicht bzw. unterstßtzt (z. B. Betriebssystem, sowie Gerätetreiber und Dienstprogramme)
⢠UnterstĂźtzungssoftware, d. h. Programme, die bei der Entwicklung, Wartung helfen oder eine nicht-anwendungsspezifische Leistung erbringen (z. B. Editoren, Compiler, Virenscanner, Datenbankmanagementsysteme, âŚ)
⢠Anwendungssoftware, die den Benutzer bei der Ausfßhrung seiner Aufgaben unterstßtzt und ihm dadurch erst den eigentlichen, unmittelbaren Nutzen stiftet (z. B. eine Tabellenkalkulation).
Unterteilung nach dem Grad der Individualität
⢠Standardsoftware wird von einem Softwareanbieter zum Einsatz bei mehreren/vielen Kunden erstellt, die diese Software erwerben kÜnnen.
⢠Individualsoftware wird fßr einen einzelnen Anwender zur LÜsung einer spezifischen Aufgabenstellung individuell erstellt oder modifiziert, alternativ durch einen Softwareanbieter oder durch eigene Entwickler bzw. Entwicklungsabteilungen eines Unternehmens.
Rechtlich wird beim Erwerb von Software zwischen Individualsoftware und Standardsoftware unterschieden: FĂźr Individualsoftware wird ein Werkvertrag bzw. Werklieferungsvertrag abgeschlossen, der Erwerb von Standardsoftware gilt als Sachkauf.
Unterteilung nach der Art der erzeugten Ergebnisse
Diese entstehen im Verlauf des Herstellungsprozesses von Software und kĂśnnen beispielsweise sein:
⢠Quellcode, Zwischencode, Maschinencode, Gerätetreiber und andere erforderliche Module (als Programmbibliothek ausgeliefert)
⢠Installationsprogramme und dazugehÜrende Anweisungen
⢠Weitere Unterlagen wie die Dokumentation fßr Softwareentwickler und Softwarebenutzer
Unterteilung nach der Art der Einbettung
⢠Nicht eingebettete Software, die nachträglich installiert wird
⢠Fest in einem Gerät zu dessen Steuerung untergebrachte Software (z. B. in einem ROM oder als Teil eines eingebetteten Systems) bezeichnet man als Firmware oder auch als eingebettete (oder âembeddedâ) Software
Einstufung nach Nutzungsrecht (Lizenz)
⢠Adware, Software mit Werbeeinblendungen
⢠Beerware, frei benutzbar, verbunden mit der Bitte, dem Autor ein Bier auszugeben
⢠Cardware, auch Postcardware genannt, vergleichbar auch: Emailware, frei benutzbar, verbunden mit der Bitte, dem Autor eine Postkarte (oder E-Mail) zu schicken; die Lizenz bleibt beim Autoren
⢠Careware
⢠Crippleware
⢠Donationware
⢠Freeware
⢠Nagware
⢠Shareware
⢠Freie Software
Unterteilung nach Quellcode-VerfĂźgbarkeit
⢠Freie Software
⢠Open Source
Einstufung nach VerfĂźgbarkeit
⢠Abandonware, veraltete Produkte, die nicht mehr gewartet und unterstßtzt werden
⢠Vaporware, Software, die nach Ankßndigung nicht oder verspätet erscheint
Weitere Softwarebegriffe
⢠Portable Software: Auf verschiedenen Computer(typen) lauffähig
⢠Native Software: Zur Ausfßhrung auf einem bestimmten Computersystem erstellt oder kompiliert. Der Programmcode nutzt die individuelle Funktionalität eines bestimmten Systemtyps, Allgemeingßltigkeit und Portabilität gelten nicht als Entwicklungsziel.cite-ref-29[26]
⢠Bananenware (unausgereifte Software, die nach der Auslieferung âreiftâ)
⢠SchlangenÜl (Programm ohne echte Funktion, wird aber als Wundermittel angepriesen)
⢠Shovelware (Sammlung von Software, wobei die Quantität zählt)
⢠Riskware
⢠Bloatware (mit Funktionen ohne synergetischen Nutzen ßberladene Software)
⢠Crapware
⢠Spyware
Lizenzmodelle
Die Verbreitung und Nutzung von Software unterliegt dem Urheberrecht. In diesem Zusammenhang gibt es mehrere typische Ăberlassungsmodelle:
Verkauf
Der vollständige Verkauf von Software, inklusive der Ăberlassung von Weiterverbreitungsrechten, kommt praktisch nur zwischen Unternehmen vor, in der Regel im Rahmen von Auftragsprogrammierung oder beim Verkauf eines Softwareentwicklungsunternehmens.
Nutzungsrecht
Bei der meisten Software, die zum Beispiel fĂźr PCs âgekauftâ werden kann, wird in Wirklichkeit nur ein Nutzungsrecht Ăźberlassen. Dieses Modell ist auch bei der Auftragsprogrammierung Ăźblich, bei der ein Unternehmen ein Programm fĂźr den Eigengebrauch eines anderen Unternehmens speziell entwickelt. Bei Freeware ist dieses Recht kostenlos, was nicht mit freier Software verwechselt werden darf.
Die Software wird bei einem Dienstleister gehostet, die eigentliche Nutzung der Software kann entweder pro Zeitraum oder pro Nutzungseinheit berechnet werden. Sie wird oft auf einem einfachen PC, evtl. nur Ăźber einen Webbrowser ausgefĂźhrt.
Freie Software/Open Source/GPL
Freie Software darf von jedem genutzt, beliebig verändert und weiterverbreitet werden. Oft unterliegt dieses Recht gewissen Einschränkungen, wie zum Beispiel der Nennung des Autors oder der Verpflichtung, veränderte Versionen unter die gleiche Lizenz zu stellen (GPL). Software, die nicht zu dieser Gruppe zählt, wird proprietär genannt.
Zwischen den oben genannten Hauptformen der Softwareverbreitung gibt es zahlreiche Zwischen- und Mischstufen.
Siehe auch
:
Lizenzen der freien Software
und
Lizenzmanagement
Freie Software und Open Source
â
Hauptartikel
:
Freie Software
und
Open Source
âFreie Softwareâ ist eine soziale Bewegung, die unfreie Software als gesellschaftliches Problem begreift.cite-ref-30[27] Wobei âfreiâ hier nicht âkostenlosâ bedeutet (âFreie Softwareâ ist nicht dasselbe wie âFreewareâ), sondern die Freiheiten fĂźr die Gesellschaft meint, die ein derart lizenziertes (auch kommerzielles) Produkt bietet. In den Augen der von Richard Stallman 1985 gegrĂźndeten Free Software Foundation (FSF) ist die Entscheidung fĂźr oder gegen freie Software deshalb primär eine ethische und soziale Entscheidung.
Dagegen begreift die 1998 gegrĂźndete Open Source Initiative (OSI) quelloffene Software als bloĂes Entwicklungsmodell, wobei die Frage, ob Software quelloffen sein sollte, dort eine rein praktische und keine ethische Frage darstellt. Die FSF wirft der OSI daher eine Ablenkung von den wesentlichen Punkten vor.cite-ref-31[28] Eric S. Raymond hat den Begriff âOpen Sourceâ in der Annahme eingefĂźhrt, dass das unpopuläre Thema âFreiheitâ Geldgeber fĂźr solche Projekte abschrecken kĂśnne.
Auch wenn es sich heute um zwei unterschiedliche Bewegungen mit unterschiedlichen Ansichten und Zielen handelt, verbindet sie die gemeinsame Wertschätzung fßr quelloffenen Code, was in zahlreichen Projekten mßndet, in denen sie zusammenarbeiten.
Siehe auch
Literatur
⢠John W. Tukey: The Teaching of Concrete Mathematics. In: The American Mathematical Monthly. Vol. 65, no. 1, Jan. 1958, S. 2. (Erstmalige Verwendung des Begriffs Software im heutigen Sinn), JSTOR:2310294
⢠F. R. Shapiro: Origin of the term software: Evidence from the JSTOR electronic journal archive. In: IEEE Annals of the History of Computing. 22, AprilâJuni 2000, S. 69.
⢠Friedrich Kittler: âEs gibt keine Softwareâ. In: ders.: Draculas Vermächtnis. Technische Schriften. Reclam, Leipzig 1993, ISBN 3-379-01476-1.
⢠Sebastian von Engelhardt: Die Ükonomischen Eigenschaften von Software. (= Jenaer Schriften zur Wirtschaftswissenschaft. 14/2006). Friedrich-Schiller-Universität Jena, Wirtschaftswissenschaftliche Fakultät, ISSN 1611-1311. (ideas.repec.org)
Weblinks
Wiktionary: Software
â Bedeutungserklärungen, Wortherkunft, Synonyme, Ăbersetzungen
⢠Software-Wiki bei Fandom
⢠Geschichte der Softwareprogrammierung
⢠Softwareâs origin (englisch)
⢠Ursprung des Wortes Software (englisch)
Einzelnachweise
cite-note-duden-inf-11. â Duden, Informatik: ein Sachlexikon fĂźr Studium und Praxis. Dudenverlag, Mannheim u. a. 1993, ISBN 3-411-05232-5.
cite-note-lassmann-22. â Wolfgang Lassmann: Wirtschaftsinformatik: Nachschlagewerk fĂźr Studium und Praxis. Gabler, Wiesbaden 2006, ISBN 3-409-12725-9, Kap. 4.1 Grundlagen. Zitat âSoftware ist ein Sammelbegriff fĂźr die Gesamtheit der Programme, die zugehĂśrigen Daten und die notwendige Dokumentation, die es erlauben, mit Hilfe eines Computers Aufgaben zu erledigen.â (books.google.de)
cite-note-isbn-978-3-446-22543-5-33. â Lehr- und Ăbungsbuch Informatik: Grundlagen und Ăberblick. Band 1, Hanser Verlag, 2003, ISBN 3-446-22543-9, S. 311. (books.google.de)
cite-note-tessen-edmunds-44. â Tessen Freund: Software Engineering durch Modellierung wissensintensiver Entwicklungsprozesse. Berlin 2007, ISBN 978-3-940019-11-0, Kap. 2.1.1 âSoftwareâ, S. 25, Zitat Edmunds âSoftware includes computer programs and data that is used by theses programs [âŚ] Software determines what a computer does and how it does it.â; (books.google.de)
cite-note-rothhardt-55. â Tessen Freund: Software Engineering durch Modellierung wissensintensiver Entwicklungsprozesse. Berlin 2007, ISBN 978-3-940019-11-0, Kap. 2.1.1 âSoftwareâ, S. 25, Zitat Rothhardt; (books.google.de)
1. Helmut Balzert: Lehrbuch der Software-Technik. 2. Auflage. Spektrum Akademischer Verlag, 2000, ISBN 3-8274-0480-0, S. 23 f.
cite-note-meyer-87. â Auszug aus lexikon.meyer.de, Software: â[âŚ] Im allgemeinen Sprachgebrauch wird die Bezeichnung Software meist nur auf Programme bezogen, nicht aber auf andere Daten [âŚ]â (eine Verlinkung dahin ist nicht mehr mĂśglich, da âMeyers Lexikon Onlineâ zum 23. März 2009 eingestellt wurde)
cite-note-amm58-98. â John W. Tukey: The Teaching of Concrete Mathematics. In: The American Mathematical Monthly. Vol. 65, no. 1, Jan. 1958, S. 2. (Erstmalige Verwendung des Begriffs Software im heutigen Sinn), JSTOR:2310294. Tukey schreibt: âToday the âsoftwareâ comprising the carefully planned interpretive routines, compilers, and other aspects of automative programming are at least as important to the modern electronic calculator as its âhardwareâ of tubes, transistors, wires, tapes and the like.â
cite-note-ludewig07-109. â Jochen Ludewig, Horst Lichter: Software Engineering. 1. Auflage. dpunkt Verlag, 2007, ISBN 978-3-89864-268-2, S. 34. (dpunkt.de; Leseprobe, PDF) Zitat âSoftware umfasst Programme, Abläufe, Regeln, auch Dokumentation und Daten, die mit dem Betrieb eines Rechnersystems zu tun haben.â
cite-note-linfo-org-sw-2-1110. â linfo.org â Software Definition, Zitat: â[âŚ] In a broader sense it can also refer to all information (i.e., both programs and data) in electronic form, and it can provide a distinction from hardware, which refers to media and systems on which software can exist and be used [âŚ]â
cite-note-iso-iec-24765-2010-1211. â ISO IEC 24765:2010, Zitat â[Software is] 1. all or part of the programs, procedures, rules, and associated documentation of an information processing system 2. computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system 3. program or set of programs used to run a computerâ ISO/IEC/IEEE 24765:2010 auf der ISO-Homepage
cite-note-1312. â Definition Computerprogramm, Wirtschaftslexikon gabler.de
cite-note-1413. â Definition Programm, Wirtschaftslexikon gabler.de
cite-note-sw-patents-1514. â softwarepatents.eu, âProgrammcode in seiner linguistischen Form als Sprachwerkâ
cite-note-1615. â Software and Systems Engineering Vocabulary; IEEE Computer Society, 2012, S. 1, Anmerkung zu ISO/IEC 26514:2008 4.46
cite-note-1716. â Rights in Technical Data, law.cornell.edu
cite-note-1817. â Stefan Schneider: Empirische Evidenz fĂźr die Relevanz des Geschäftsmodells Softwareentwicklung und-absatz. In: Stefan Schneider: Auslegung der International Financial Reporting Standards am Bilanzierungsobjekt Softwarrentwicklung. DUV, Wiesbaden 2006, ISBN 3-8350-0197-3, S. 58â71. Zitat âSoftware umfasst neben dem Computerprogramm ferner die zum Betrieb notwendigen Daten und die zugehorige Dokumentation.â
cite-note-steve-wozniak-1918. â Steve Wozniak: iWoz â Wie ich den Personal Computer erfand und Apple mitgrĂźndete. Deutscher Taschenbuchverlag, 2008, ISBN 978-3-423-34507-1, S. 144â149.
cite-note-2119. â Rechtliche Rahmenbedingungen von Serviceorientierten Architekturen mit Web Services. Univ.-Verlag GĂśttingen, GĂśttingen 2010, ISBN 978-3-941875-29-6, S. 35: âWeil Software Gegenstand einer schĂśpferischen Leistung ist, die man nicht anfassen kann, wird ihr zum Teil die Sachqualität abgesprochen.â
cite-note-softwaretechnik-basiskonzepte-2009-2220. â Helmut Balzert: Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering. 3. Auflage. Spektrum, Akad. Verlag, Heidelberg 2009, ISBN 978-3-8274-1705-3, S. 9: âSoftware ist ein immaterielles Produkt. Software kann man nicht anfassen und nicht sehen.â
cite-note-2421. â Klaus WĂźst: Mikroprozessortechnik: Grundlagen, Architekturen, Schaltungstechnik und Betrieb von Mikroprozessoren und Mikrocontrollern. Springer-Verlag, 2009, ISBN 978-3-8348-0461-7, Kap. 7.5.4 ISA â Instruction Set Architecture Die ISA [Diese Form] ist genau das, was fĂźr die Erstellung von Maschinenprogrammen bekannt sein muss. (books.google.de)
cite-note-fehlerinkomplexersoftware-m-ulich-wired-2522. â Rajiv D. Banker, Srikant M. Datar, Dani Zweig: Software Complexity and Maintainability (PDF) Proceedings of the Tenth International Conference on Information Systems, 1989, S. 247â255. (citeseerx.ist.psu.edu; PDF (Memento vom 8. August 2014 im Internet Archive))
cite-note-2623. â Der programmierte Kopf. In: P. BrĂśdner, D. KrĂźger, B. Senf: Eine Sozialgeschichte der Datenverarbeitung. 1982, ISBN 3-8031-2082-9, S. 53.
cite-note-2724. â ISO/IEC 2382-1:1993 - Information technology â Vocabulary â Part 1: Fundamental terms. (iso.org)
cite-note-2825. â Georg Herzwurm: Grundlagen von Betriebssystemen. (PDF) Uni Stuttgart, 18. Januar 2006, S. 5(33), archiviert vom Original (nicht mehr online verfĂźgbar) am 16. Juli 2014; abgerufen am 23. November 2015.
cite-note-2926. â Native Software. Encyclopedia.com
cite-note-3027. â The Selected Essays of Richard Stallman (aktualisierte Fassung): âOpen Source ist ein Entwicklungsmodell. Freie Software ist eine soziale Bewegung. FĂźr die Open-Source-Bewegung ist nicht-freie Software eine suboptimale LĂśsung. FĂźr die Freie-Software-Bewegung ist nicht-freie Software ein soziales Problem und freie Software ist die LĂśsung.â ursprĂźngliche Fassung: âFĂźr die Freie-Software-Bewegung ist freie Software ein ethisches Gebot ⌠nicht-freie Software ist ein gesellschaftliches Problem âŚâ
cite-note-3128. â Warum Freie Software besser ist als Open Source. auf: gnu.org